Applying Open Source Software Principles in Product Lines
نویسنده
چکیده
Product line engineering improves the management of variability and reuse in embedded systems. It helps to exploit mass customisation leading to individualised products to the customer. It has lead to heavy development processes and many global planning for a complete range of products (a product line). Open source development does not have a strong impact in embedded systems companies, partially because the culture of open source developers that do not adhere to global planning and heavy processes. However, both developments need (often) distributed development, and here is the point where software product lines and open source of them can profit from achievements of each other. This paper investigates several options of using open source and its methodology in product line development to reduce the problems of distributed development and to increase the quality. A small part of the paper discusses to options for open source development to benefit from variability management of software product lines and in this way improve the possibility to customise the resulting products. keywords: software product lines, open source software, inner source, variation management, commodification, Introduction In the last decades, embedded systems providers have introduced product line engineering in order to improve the management of the diversity of their product and to reduce development effort. The move towards software product line engineering is usually strongly based on large-scale reuse, leading to cost and time-to-market reduction and quality improvement and maintenance cost reduction. Software product line engineering is a means to develop software applications using platforms and mass customisation. Mass-customisation enables the fast and efficient production of an individualised product to the customer. The artefacts used in different products have to be sufficiently adaptable to fit into the different systems produced in the product line. This means management of variability in all artefacts of the product line. In particular a product line often defines a platform of architecture, components and supporting tools to provide efficient standardised mechanisms to manage variability. Other trends in software engineering do not always relate to software product lines, whereas their application in an organisation doing product lines may be beneficial. Vice versa, other approaches towards software engineering may benefit from the introduction of product line principles. In particular, this holds for open source development, since it appears to be a profitable way to obtain good software. Open source development has many different forms, but the prime aspect of it is that a distributed group of people work together to produce a piece of software. However, it is a different from doing distributed development than what is presently in use within most companies doing product lines. Open source communities work for their own motivations, often related to the drive to produce a piece of functionality and to share this with others. There is not only a benefit of open source for product line engineering. Because of the diverse use of open source software, product line practices can be attractive for open source communities. However, many characteristics of product line engineering do not match to present day practices in open source development. For instance the managed processes are not always feasible or accepted. It is profitable to combine the benefits of both approaches it is necessary overcome these differences. Presently, there is limited interaction between the open source and product line development communities, although its interest is already stated in literature : “... Studying the identified problems in more detail and evaluating the proposed alternative approaches more carefully is a goal of future work in this area.” This paper investigates the relationship between open source and product line development. It is based on results obtained in the ITEA project COSI . The following observations can be made: Software product lines needs usually large investments, long term planning, explicit variability management, and often this means large, thus distributed development. The IT industry uses open source in a profitable way to obtain good software. It helps to reduce the costs through effort sharing. It helps to reduce the lead time through agile development. And it is an intrinsically distributed way of developing systems. This parallel concern for distributed development is the main inspiration for trying to combine open source and product line practices, to the benefit for all involved.
منابع مشابه
Introducing Product Lines through Open Source Tools
We present an approach to introducing product lines to companies that lower their initial risk by applying open source tools and a smooth learning curve into the use and creation of domain specific modeling combined with standardized variability modeling.
متن کاملOpen Source Software and Product Lines 2007
Embedded industries have invested a lot in the introduction of software product lines in their software development. In addition, using open source software appears to be a profitable way to obtain good software. This is also applicable for organizations doing product line engineering. On the other hand, because of the diverse use of open source software, product line development is an attracti...
متن کاملApplying open source principles to collaborative learning environments
Open source software provides an example not only of a viable software development methodology, but also a model for collaborative construction of artifacts. Open source communities exemplify principles that are important in collaborative learning environments. This paper explores how open source efforts can be used as inspiration for the creation of collaborative learning experiences in a univ...
متن کاملComparing practices for reuse in integration-oriented software product lines and large open source software projects
This paper compares organization and practices for software reuse in integrationoriented software product lines and open source software projects. The main observation is that both approaches are successful regarding large variability and reuse, but differ widely in practices and organization. To capture practices in large open source projects, we describe an open compositional model, which ref...
متن کاملJBOSS: The Evolution of Professional Open Source Software
Open source software would at first seem to be an unlikely foundation for a successful business. The notion of software developers working for free and giving away the results, while high in public spirit, appears rather low on all measures of private enterprise success. JBoss Inc., with its JBoss Enterprise Middleware System (JEMS), has created a profitable portfolio of open source products by...
متن کامل